package code.创建型模式.FactoryMethod.demo2.NumberFactory;

/**
 * 实现一个解析字符串到Number的Factory
 * ┌─────────────┐      ┌─────────────┐
 * │   Product   │      │   Factory   │
 * └─────────────┘      └─────────────┘
 *        ▲                    ▲
 *        │                    │
 * ┌─────────────┐      ┌─────────────┐
 * │ ProductImpl │<─ ─ ─│ FactoryImpl │
 * └─────────────┘      └─────────────┘
 *
 * @author guanyuan.wu.sz
 * @since 2022/6/21
 */
public interface NumberFactory {
    /**
     * parse
     *
     * @param s s
     * @return r
     */
    Number parse(String s);

    NumberFactory IMPL = new NumberFactoryImpl();

    /**
     * 获取实例
     *
     * @return result
     */
    static NumberFactory getFactory() {
        return IMPL;
    }


}
